Social networks provide a convenient way for a large number of people to interact with each other. These networks are conventionally hosted on secured server systems that safeguard each user's private information and shared content. To achieve this security, however, the server authenticates each user command to perform an operation at the server system as originating from an authorized user. One way to accomplish this is to send each command through a process associated with the server (a “trusted process”), and to ask the user to approve each command. For example, users are asked to authenticate themselves at the trusted process (e.g., by logging in to an application or website associated with the server) when sending each command.
When the user initiates an action from a process not associated with the server (an “untrusted process”) on an electronic device, the untrusted process thus communicates with a trusted process on the device, which in turn sends a command for the operation to the server. The command can then be authenticated by the server because it originated from the trusted process (e.g., operating in a user logged-in state). As such, a trusted process is invoked every time a user initiates a request of the server from an untrusted process on an electronic device. This is an inefficient work-flow because it increases the total number of processes running on an electronic device. This procedure also detracts from the overall user experience by slowing down operation of the electronic device, requiring additional user inputs to confirm a request or log-in to a server system, and visually disrupting the user.
For example, in certain operating environments that do not generally allow two applications to be running at the same time (e.g., iOS) this workflow causes the electronic device to rapidly shift between applications, and thus between user interfaces (e.g., from a UI for the untrusted process to a UI for the trusted process), every time the user initiates an action from the untrusted process. Avoiding this rapid shift in user interfaces would provide an improved user experience. In addition, these methods take longer than necessary, thereby wasting energy. This latter consideration is particularly important in battery-operated devices.